/**
 * 观察者模式
 */
export default class Observer {
  constructor() {
    this.observers = []
  }
  /**
   * 添加观察者
   * @param {*} fn 
   */
  add (fn) {
    if (typeof fn === 'function') {
      this.observers.push(fn)
    }
  }
  /**
   * 事件通知
   * @param  {...any} args 
   */
  notify (...args) {
    this.observers.forEach(observer => {
      observer.call(...args)
    })
  }
}